package week8;
    abstract class Geometric {
        protected String color;
        protected boolean filled;

        // 无参构造方法
        public Geometric() {
        }

        // 创建指定颜色和填充值的构造方法
        public Geometric(String color, boolean filled) {
            this.color = color;
            this.filled = filled;
        }

        // 抽象方法：返回图形的面积
        public abstract double getArea();

        // 抽象方法：返回图形的周长
        public abstract double getPerimeter();

        // 返回该几何图形的字符串描述
        public String toString() {
            return "Geometric [color=" + color + ", filled=" + filled + "]";
        }
    }

    // 定义圆类实现Geometric类
    class Circle extends Geometric {
        private double radius;

        // 无参构造方法
        public Circle() {
            super(); // 调用父类的无参构造方法
        }

        // 创建指定radius的圆的构造方法
        public Circle(double radius, String color, boolean filled) {
            super(color, filled); // 调用父类的构造方法
            this.radius = radius;
        }

        // radius的访问器方法
        public double getRadius() {
            return radius;
        }

        // 返回圆的面积
        @Override
        public double getArea() {
            return Math.PI * radius * radius;
        }

        // 返回圆的周长
        @Override
        public double getPerimeter() {
            return 2 * Math.PI * radius;
        }

        // 返回该圆的字符串描述
        @Override
        public String toString() {
            return "Circle [radius=" + radius + ", " + super.toString() + "]";
        }
    }


